#ifndef LCOM_GAME_H
#define LCOM_GAME_H

#include <rtc.h>
#include <utypes.h>

/** Diz se o jogo terminou */
extern Bool GAME_QUIT;


/** Mostra os créditos? */
extern Bool GAME_SHOW_CREDITS;

/** Inicializa o gestor do jogo */
void game_init (void);


/** Carrega um ficheiro com os dados do Alex
 * \param file Nome do ficheiro
 */
void game_load (const char *file);


/** Grava os dados em um ficheiro
 * \param gfile Nome do ficheiro ondes os dados do jogo são armazenados
 * \param lfile Nome do ficheiro onde o nível é gravado
 * \return Verdadeiro se o jogo foi gravado com sucesso
 */
Bool game_save (const char *gfile, const char* lfile);

/** Volta ao início do nível */
void game_reload (void);

/** Avança um nível
 * \return true se ganhamos o jogo
 */
Bool game_next (void);

/** Sai do jogo */
void game_unload (void);

/** Ganha uma vida */
void game_life_gain (void);


/** Perde uma vida */
void game_life_lose (void);

/** Aumenta a pontuação */
void game_points (int n);


/** Testa se o Alex está vivo */
Bool game_alive (void);

/** Obtém o número do nível */
int game_level_num (void);

/** Obtém o tempo de duração do jogo
 * \return Tempo de duração do jogo
 */
RTC_TIME game_time (void);

#endif //LCOM_GAME_H

